#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
#import "Foursquare.h"

//  This Foursquare integration is possible thanks to the Foursquare API by
//  Eric Butler and associates.
//
//  Copyright (C) 2010 Eric Butler <eric@codebutler.com>

/**
 * A FoursquareVenue is an object representing a single venue in the
 * Foursquare system.
 *
 * Code used within this class and the supporting API was written by 
 * Eric Butler and other associates.
 *
 * The supporting API can be found in ./FourSquareAPI folder.
 *
 * @author      Eric Butler
 * @author      James Lin
 * @version     2.2.1 
 * @since       2.0.5
 */
@interface FoursquareVenue : NSObject

@property (nonatomic, retain) NSString* venueID;       // Identifier of venue
@property (nonatomic, retain) NSString* venueName;     // Name of venue
@property (nonatomic, retain) NSString* venueAddress;  // Address of venue
@property (nonatomic, retain) NSString* venueCity;     // City of venue
@property (nonatomic, retain) NSString* venueDistance; // Distance to venue
@property (nonatomic, retain) NSString* venueCategory; // Category of venue
@property (nonatomic, retain) NSString* venueImageURL; // URL of venue image
@property CLLocationCoordinate2D venueLocation;        // Location of venue

@property NSInteger venueCheckIns;                         // Check-ins at venue
@property (nonatomic, retain) NSDictionary* venueTips;     // Tips for venue
@property (nonatomic, retain) NSDictionary* venueSpecials; // Specials for venue

/**
 * Initialize the Foursquare venue.
 *
 * @param identifier  the identifier for the venue
 * @param name        the name of venue
 * @param address     the address of venue
 * @param city        the city of venue
 * @param distance    the distance to the venue
 * @param category    the category of venue
 * @param latitude    the latitude of venue location
 * @param longitude   the longitude of the venue location
 * @param specials    the specials at the venue
 * @return            the initialized Foursquare venue
 */
- (id)initWithID:(NSString*)identifier 
			name:(NSString*)name 
		 address:(NSString*)address 
			city:(NSString*)city 
		distance:(NSString*)distance 
		category:(NSString*)category 
		latitude:(NSString*)latitude 
	   longitude:(NSString*)longitude 
		specials:(NSDictionary*)specials;

/**
 * Load the additional venue information: check-ins, tips, and specials.
 */
- (void)loadExtraInfo;

@end
